/**
@author		Jong Min, Lee
@date		  01/21/2014
@brief		viewer class

copyright(c) Tae Young Soft. All right reserved. 2014
*/
#pragma once

#include "Taurus_Viewer/Defines.h"
#include "Taurus_Common/IViewerModule.h"

/**
@brief  viewer class
*/
class TAURUS_VIEWER_EXPORT CViewer : public IViewerModule
{
public:
  /**
  @brief		default constructor
  */
  CViewer(void);

  /**
  @brief		destructor
  */
  ~CViewer(void);

  /**
  @brief		initialize viewer
  */
  virtual DWORD init(IAppGlobalInstanceSet* pInstanceSet);

  /**
  @brief		destroy view
  */
  virtual DWORD destroy();

  /**
  @brief		set viewer property
  @param		pProfileDoc pointer to viewer property xml document
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  virtual DWORD setProperty(MSXML2::IXMLDOMDocument2Ptr pPropertyDoc);

  /**
  @brief		show viewer on specfied monitor
  @param		pMonitor pointer to monitor
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  virtual DWORD ShowViewer(const CMonitor* pMonitor);

private:
  /**
  @brief		initialize viewer property
  @param		pPropertyDc viewer property xml document
  @return		ERROR_SUCCESS upon success, an error code otherwise
  */
  DWORD initViewerProperty(MSXML2::IXMLDOMDocument2Ptr pPropertyDoc);
};

